package jnpf.service;

import jnpf.base.ActionResult;
import jnpf.model.page.MyPageListVO;
import jnpf.model.theme.*;
import jnpf.entity.*;

import java.util.*;

import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.model.znm.theme.tree.TreeVO;

/**
 * theme
 * 版本： V3.5
 * 版权： 引迈信息技术有限公司（https://www.jnpfsoft.com）
 * 作者： JNPF开发平台组
 * 日期： 2025-05-08
 */
public interface ThemeService extends IService<ThemeEntity> {
    List<ThemeEntity> getList(ThemePagination themePagination);

    List<ThemeEntity> getTypeList(ThemePagination themePagination, String dataType);

    ThemeEntity getInfo(String id);

    void delete(ThemeEntity entity);

    void create(ThemeEntity entity);

    boolean update(String id, ThemeEntity entity);

    //子表方法
    List<ThemeTreeEntity> getThemeTreeList(String id, ThemePagination themePagination);

    List<ThemeTreeEntity> getThemeTreeList(String id,String isPublish);

    //副表数据方法
    String checkForm(ThemeForm form, int i);

    void saveOrUpdate(ThemeForm themeForm, String id, boolean isSave) throws Exception;

    /**
     * 获取主题树
     *
     * @return
     */
    List<TreeVO> getThemeTree(String id, String isPublish,boolean addPrefix);

    ActionResult updateStatus(ThemeEntity entity, String status);

    ActionResult<MyPageListVO<ThemeEntity>> getThemeVersionList(ThemeQueryReq themeQueryReq);

    ActionResult<ThemeVersionInfoResp> getThemeVersionInfo(String themeId);

    ActionResult setMainVersion(String themeId);

    ActionResult<List<ThemePkDTO>> getPkData();

    ActionResult<ArrayList<ThemePkDataDTO>> getThemeVersion(List<ThemePkDataDTO> themeIds);

    List<TreeVO> getMergedThemeTree(List<String> mainThemeIds, String number);
}
